using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("FatalErrorMgr")]
	public class FatalErrorMgr : MonoClass
	{
		public List<FatalErrorMessage> m_messages => method_3<Class271<FatalErrorMessage>>("m_messages")?.method_25();

		public string m_text => method_4("m_text");

		public string m_generatedErrorCode => method_4("m_generatedErrorCode");

		public FatalErrorMgr(IntPtr address, string className)
			: base(address, className)
		{
		}

		public FatalErrorMgr(IntPtr address)
			: this(address, "FatalErrorMgr")
		{
		}

		public static FatalErrorMgr Get()
		{
			return MonoClass.smethod_15<FatalErrorMgr>(TritonHs.MainAssemblyPath, "", "FatalErrorMgr", "Get", Array.Empty<object>());
		}

		public void Add(FatalErrorMessage message)
		{
			method_8("Add", message);
		}

		public bool AddUnique(FatalErrorMessage message)
		{
			return method_11<bool>("AddUnique", new object[1] { message });
		}

		public void SetErrorCode(string prefixSource, string errorSubset1, string errorSubset2, string errorSubset3)
		{
			method_8("SetErrorCode", prefixSource, errorSubset1, errorSubset2, errorSubset3);
		}

		public void ClearAllErrors()
		{
			method_8("ClearAllErrors");
		}

		public List<FatalErrorMessage> GetMessages()
		{
			return method_14<Class271<FatalErrorMessage>>("GetMessages", Array.Empty<object>())?.method_25();
		}

		public string GetFormattedErrorCode()
		{
			return method_13("GetFormattedErrorCode");
		}

		public bool HasError()
		{
			return method_11<bool>("HasError", Array.Empty<object>());
		}

		public void NotifyExitPressed()
		{
			method_8("NotifyExitPressed");
		}

		public void SendAcknowledgements()
		{
			method_8("SendAcknowledgements");
		}

		public void FireErrorListeners(FatalErrorMessage message)
		{
			method_8("FireErrorListeners", message);
		}
	}
}
